#ifndef __IRIS_NET_H
#define __IRIS_NET_H

#include "fakenet_interface.h"
#include "network.h"
#include "../glue/settings.h"
#include "../glue/types.h"
#include "../glue/stat.h"

class Iris_net : public Network{
public:
    Iris_net(int num_nodes);
    ~Iris_net();
    
    /** Values used in ID to bus interface mapping
     *      number of connections on the bus,
     *      number of nodes beneath each interface (for proper trickle down)
     *      offset of id range
     */

    manifold::kernel::CompId_t *ii_nodes_cid;
    Iris_interface **ii_pointer;

    void tick();
    void tock();
    
    Network_interface *get_interface (int id);
    manifold::kernel::CompId_t get_cid (int id);
};

#endif
